using System;

namespace ChessKit.ChessLogics.Internals
{
  [Flags]
  internal enum PawnMoveValidation
  {
    DoesntMoveThisWay = ValidationError.PieceDoesntMoveThisWay,
    OnlyTakesThisWay = ValidationError.PieceDoesntMoveThisWay,
    DoesntTakeThisWay = ValidationError.PieceDoesntMoveThisWay,
    JumpRequired = ValidationError.PieceDoesntMoveThisWay,

    Valid = MoveHint.PawnMove,

    Move       = Valid | MoveHint.PawnMove,
    Take       = Valid | MoveHint.PawnMove | MoveHint.Take,
    DoubleMove = Valid | MoveHint.PawnMove | MoveHint.PawnDoubleMove,
    EnPassant  = Valid | MoveHint.PawnMove | MoveHint.Take | MoveHint.EnPassant,
    Promotion  = Valid | MoveHint.PawnMove | MoveHint.Promotion,
    
    PromotionWithTake = Promotion | MoveHint.Take,
  }
}